package com.kai.service.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kai.service.data.request.system.CreateResourceRequest;
import com.kai.service.data.request.system.PagingResourceRequest;
import com.kai.service.data.request.system.ResourceRequest;
import com.kai.service.data.request.system.UpdateResourceRequest;
import com.kai.service.data.response.system.ResourceResponse;
import com.kai.service.system.entity.Resource;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 资源管理 服务类
 * </p>
 *
 * @author wjk
 * @since 2021-12-11
 */
public interface IResourceService extends IService<Resource> {

    /**
     * 根据角色id查询资源权限
     *
     * @param roleIds
     * @return
     */
    List<Resource> listRoleResource(List<Integer> roleIds);

    /**
     * 分层获取所有资源列表
     *
     * @param resourceRequest
     * @return
     */
    List<ResourceResponse> listHierarchyResource(ResourceRequest resourceRequest);

    /**
     * 分页获取所有资源
     *
     * @param pagingResourceRequest
     * @return
     */
    IPage<ResourceResponse> pagingResource(PagingResourceRequest pagingResourceRequest);

    /**
     * 添加资源
     *
     * @param createResourceRequest
     * @return
     */
    Boolean createResource(CreateResourceRequest createResourceRequest);

    /**
     * 修改资源
     *
     * @param resourceId
     * @param updateResourceRequest
     * @return
     */
    Boolean updateResource(Integer resourceId, UpdateResourceRequest updateResourceRequest);

    /**
     * 切换资源启用状态
     *
     * @param resourceId
     * @param status
     * @return
     */
    Boolean stateSwitch(Integer resourceId, int status);
}
